package facade;

import java.util.Collection;

import javax.ejb.EJB;
import javax.ejb.Stateless;

import utils.ZaraException;

import ejb.AdministradorArticulo;
import ejb.AdministradorOFAD;
import ejb.AdministradorPALC;
import ejb.AdministradorSolDist;
import entidadesVO.AccesorioVO;
import entidadesVO.ArticuloVO;
import entidadesVO.CentroDistribucionVO;
import entidadesVO.OFADVO;
import entidadesVO.PALCVO;
import entidadesVO.RopaVO;
import entidadesVO.SolDistVO;
import entidadesVO.TiendaVO;
import facade.Facade;

public @Stateless class FacadeBean implements Facade {

	@EJB AdministradorArticulo administradorArticulo;
	@EJB AdministradorOFAD administradorOFAD;
	@EJB AdministradorPALC administradorPALC;
	@EJB AdministradorSolDist administradorSolDist;

	public void inicializar(){
		administradorArticulo.inicializar();
	}
	
	public void setRopa(RopaVO ropaVO) throws ZaraException{
		administradorArticulo.setRopa(ropaVO);
	}
	
	public void setAccesorio(AccesorioVO accesorioVO) throws ZaraException{
		administradorArticulo.setAccesorio(accesorioVO);
	}
	
	public ArticuloVO getArticulo(String referencia) throws ZaraException{
		return administradorArticulo.getArticulo(referencia);
	}
	
	public Collection<ArticuloVO> getArticulosNuevos() throws ZaraException{
		return administradorArticulo.getArticulosNuevos();
	}
	
	public Collection<ArticuloVO> getArticulos() throws ZaraException{
		return administradorArticulo.getArticulos();
	}
	
	public CentroDistribucionVO getCentroDistribucion(String nombreCentroDistribucion) throws ZaraException{
		return administradorArticulo.getCentroDistribucion(nombreCentroDistribucion);
	}
	
	public Collection<CentroDistribucionVO> getCentrosDistribucion() throws ZaraException{
		return administradorArticulo.getCentrosDistribucion();
	}

	public Collection<ArticuloVO> getArticulosMesRebaja() throws ZaraException{
		return administradorArticulo.getArticulosMesRebaja();
	}
	
	public void setOFAD(OFADVO ofadVO) throws ZaraException{
		administradorOFAD.setOFAD(ofadVO);
	}
	
	public void setOFADS(Collection<OFADVO> ofads) throws ZaraException{
		administradorOFAD.setOFADS(ofads);
	}
	
	public PALCVO setPALC(PALCVO palcVO) throws ZaraException{
		return administradorPALC.setPALC(palcVO);
	}
	
	public TiendaVO getTienda(String nombreTienda) throws ZaraException{
		return administradorPALC.getTienda(nombreTienda);
	}

	public Collection<PALCVO> setPALCS(Collection<PALCVO> palcs) throws ZaraException{
		return administradorPALC.setPALCS(palcs);
	}
	
	public Collection<ArticuloVO> getArticulosPedidosPorNTiendas(int nTiendas) throws ZaraException{
		return administradorPALC.getArticulosPedidosPorNTiendas(nTiendas);
	}
	
	public SolDistVO getSolDist(String nombreCentroDistribucion) throws ZaraException{
		return administradorSolDist.getSolDist(nombreCentroDistribucion);
	}
	
	public void persistirSolDist(SolDistVO solDistVO) throws ZaraException{
		administradorSolDist.persistirSolDist(solDistVO);
	}
	
	public Collection<ArticuloVO> getListadoArticuloVOTentativoOFAD() throws ZaraException{
		return administradorArticulo.getListadoArticuloVOTentativoOFAD();
	}
	
}
